package org.Niu;

import java.util.Arrays;

public class multiArray {
    public static void main(String[] args) {
        // 初始化一个二维数组
        int[][] a = {
                {
                    1,2,3,4
                },
                {
                    2,3,4,5
                },
                {
                    6,7,8,9
                }
        };
        // 可以查询多层嵌套的数组
        // System.out.println(Arrays.deepToString(a));
        //用二维数组表示的学生成绩:
        // 使用二维数组可以表示一组学生的各科成绩，请计算所有学生的平均分：
        int[][] scores = {
                        { 82, 90, 91 }, // 学生甲的语数英成绩
                        { 68, 72, 64 }, // 学生乙的语数英成绩
                        { 95, 91, 89 }, // ...
                        { 67, 52, 60 },
                        { 79, 81, 85 },
        };


        double average = 0;
        int cnt = 0;
        for (int[] score : scores) {
            for (int i : score) {
                cnt++;
                average += i;
                System.out.print(i + " ");
            }
            System.out.println();
        }

        System.out.println(average / cnt);
        if (Math.abs(average - 77.733333) < 0.000001) {
            System.out.println("测试成功");
        } else {
            System.out.println("测试失败");
        }

        //如何声明一个二维数组
        //声明一个 3行 的二维数组，列数后续指定
        int[][] dynamicGrid = new int[3][];
        dynamicGrid[0] = new int[]{1, 2};  // 第0行2列
        dynamicGrid[1] = new int[3];       // 第1行3列（默认值0）
        dynamicGrid[2] = new int[]{7, 8, 9, 10}; // 第2行4列
        System.out.println(Arrays.deepToString(dynamicGrid));
        // 输出: [[1, 2], [0, 0, 0], [7, 8, 9, 10]]

        int[][] test = new int[3][5];
        for (int[] ints : test) {
            for (int anInt : ints) {
                System.out.print(anInt + " ");
            }
            System.out.println();
        }
    }
}
